package com.jctrip.hotel.source.model.CnBooking.resp;

import java.util.List;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

import lombok.Data;

/**
 * @Author henry
 * @Date 2023/7/2 18:09
 * @Description
 */
@Data
public class QueryRoomTypeResp extends BaseResponse {

    @JacksonXmlElementWrapper
    @JacksonXmlProperty(localName = "Data")
    private RoomTypeData data;

    @Data
    public static class Hotels {
        @JacksonXmlProperty(localName = "HotelCount")
        private Integer hotelCount;
        @JacksonXmlProperty(localName = "Hotel")
        @JacksonXmlElementWrapper(useWrapping = false)
        private List<Hotel> hotelList;
    }

    @Data
    public static class RoomTypeData {
        @JacksonXmlElementWrapper(useWrapping = false)
        @JacksonXmlProperty(localName = "Hotels")
        private Hotels hotels;
    }


    @Data
    public static class Hotel {
        @JacksonXmlProperty(localName = "HotelId")
        private String HotelId;
        @JacksonXmlProperty(localName = "HotelName")
        private String HotelName;
        @JacksonXmlProperty(localName = "Rooms")
        @JacksonXmlElementWrapper
        private Rooms Rooms;

    }

    @Data
    public static class Rooms {
        @JacksonXmlProperty(localName = "RoomCount")
        private String RoomCount;
        @JacksonXmlProperty(localName = "Room")
        @JacksonXmlElementWrapper(useWrapping = false)
        private List<Room> Room;

    }

    @Data
    public static class Room {
        @JacksonXmlProperty(localName = "RoomId")
        private String RoomId;
        @JacksonXmlProperty(localName = "RoomName")
        private String RoomName;
        @JacksonXmlProperty(localName = "RoomTypeId")
        private String RoomTypeId;
        @JacksonXmlProperty(localName = "RoomType")
        private String RoomType;
        @JacksonXmlProperty(localName = "BedTypeId")
        private String BedTypeId;
        @JacksonXmlProperty(localName = "BedType")
        private String BedType;
        @JacksonXmlProperty(localName = "RoomAcount")
        private String RoomAcount;
        @JacksonXmlProperty(localName = "MaxAdult")
        private String MaxAdult;
        @JacksonXmlProperty(localName = "MaxChild")
        private String MaxChild;
        @JacksonXmlProperty(localName = "HasWindow")
        private String HasWindow;
        @JacksonXmlProperty(localName = "AllowAddBed")
        private String AllowAddBed;
        @JacksonXmlProperty(localName = "AllowAddBedNum")
        private String AllowAddBedNum;
        @JacksonXmlProperty(localName = "AllowSmoke")
        private String AllowSmoke;
        @JacksonXmlProperty(localName = "Acreage")
        private String Acreage;
        @JacksonXmlProperty(localName = "Floor")
        private String Floor;
        @JacksonXmlProperty(localName = "HasNet")
        private String HasNet;
        @JacksonXmlProperty(localName = "NetFee")
        private String NetFee;
        @JacksonXmlProperty(localName = "IsNetFee")
        private String IsNetFee;
        @JacksonXmlProperty(localName = "Intro")
        private String Intro;
        @JacksonXmlProperty(localName = "Guide")
        private String Guide;
        @JacksonXmlElementWrapper(localName = "Images")
        @JacksonXmlProperty(localName = "Image")
        private List<Image> Image;

    }

    @Data
    public static class Images {
        @JacksonXmlProperty(localName = "ImageCount")
        private String ImageCount;
        @JacksonXmlElementWrapper(useWrapping = false)
        @JacksonXmlProperty(localName = "Image")
        private List<Image> Image;

    }

    @Data
    public static class Image {
        @JacksonXmlProperty(localName = "ImageId")
        private String ImageId;
        @JacksonXmlProperty(localName = "ImageName")
        private String ImageName;
        @JacksonXmlProperty(localName = "ImageUrl")
        private String ImageUrl;

    }
}
